/**
 * 文件：FileManager.java
 * 包名：com.ronri.common;   --- 正式发布时需要修正
 * 说明：文件管理器
 * 作者：MS During
 * 日期：2017/4/27
 * 历史：
 */
package com.ronri.common;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.util.Log;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;

public class FileManager {

    // 类调试标识
    private static String _TAG = "FileManager";

    /***
     * 返回临时文件名
     * @return
     */
    public static String getTempFileName(String szExtFileName){
        SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
        String date = sDateFormat.format(new java.util.Date());

        return date + "." + szExtFileName;
    }

    /***
     * 判断目录是否存在，如果不存在，则创建
     * @param szPath
     */
    public static boolean DirExists(String szPath){
        boolean bReturn = false;
        File dir = new File(szPath);

        // 判断文件是否存在
        bReturn = dir.exists();

        if(!bReturn){
            bReturn = dir.mkdirs();
        }

        return bReturn;
    }

    /***
     * 判断文件是否存在，如果不存在，则创建
     * @param szPath
     */
    public static boolean FileExists(String szPath){
        boolean bReturn = false;
        try {

            File dir = new File(szPath);

            // 判断文件是否存在
            bReturn = dir.exists();

        }catch (Exception ex){
            return bReturn;
        }

        return bReturn;
    }


    /***
     * 保存图片信息
     * @param szDirection
     * @param szFileName
     * @param source
     */
    public static void saveCompressBitmap(String szDirection, String szFileName, Bitmap source, int ratio){
        Log.e(_TAG,"保存文件");

        // 判断存储的目录是否存在，不存在则直接创建目录
        DirExists(szDirection);

        File f = new File(szDirection, szFileName);
        if(f.exists()){
            f.delete();
        }

        try{
            FileOutputStream out = new FileOutputStream(f);
            source.compress(Bitmap.CompressFormat.JPEG, ratio, out);
            out.flush();
            out.close();
        }catch (FileNotFoundException ex){
            Log.e(_TAG, ex.getMessage());
        }catch (IOException ex){
            Log.e(_TAG, ex.getMessage());
        }
    }

    /***
     * 读取Assets目录下的文件
     * @param resources
     * @param fileName
     * @return
     */
    public static String getFromAssets(Resources resources, String fileName)
    {
        try {
            InputStreamReader inputReader = new InputStreamReader(resources.getAssets().open(fileName) );
            BufferedReader bufReader = new BufferedReader(inputReader);
            String line="";
            String Result="";
            while((line = bufReader.readLine()) != null)
                Result += line;
            return Result;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return "";
    }
}
